package com.berchen.schedu.elastic;

import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 定时任务业务逻辑类
 */
public class ArchivieJob  implements SimpleJob {

    private AtomicInteger count=new AtomicInteger(0);
    /**
     *
     * 写核心业务逻辑
     * execute 每次定时任务都会执行一次
     * @param shardingContext   分片的信息可以从这个里面得到 开几个分片 就相当于该进程中开了多少个线程
     */
    @Override
    public void execute(ShardingContext shardingContext) {


        int shardingItem = shardingContext.getShardingItem();
        // 获取分片参数
        String shardingParameter = shardingContext.getShardingParameter();  // 0=1,1=2,2=3  等号前面的分片索引 第二个参数就是分片的参数


        if(count.get()%Integer.parseInt(shardingParameter)==0) {
            System.out.println("当前分片： "+shardingItem+"==="+"当前分片参数："+shardingParameter+"===  定时任务核心业务逻辑 count = " + count.getAndIncrement() + "  " + Thread.currentThread().getName());
        }
    }
}
